package gdoku.generator;


/**
 * Provides a namespace for {@code DokuWiki} elements.
 * 
 * @author		Dervin Cyrielle, Schnell Michaël
 * @version 	1.0
 */
public interface DokuWikiConstants {
	
	/**
	 * System dependent line separator.
	 */
	public static final String LINE_SEPARATOR = System.getProperty("line.separator") ; //$NON-NLS-1$

	/**
	 * {@code DokuWiki} paragraph separator.
	 */
	public static final String PARAGRAPH_SEPARATOR = String.format("%1$s%1$s", LINE_SEPARATOR) ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} list paragraph separator.
	 */
	public static final String LIST_PARAGRAPH_SEPARATOR = LINE_SEPARATOR ;

	/**
	 * {@code DokuWiki} row separator.
	 */
	public static final String ROW_SEPARATOR = String.format("|%s", LINE_SEPARATOR) ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} cell start tag.
	 */
	public static final String CELL_START_TAG = "|" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} header cell start tag.
	 */
	public static final String HEADER_START_TAG = "^" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to indicate a row span.
	 */
	public static final String CELL_ROW_SPAN = ":::" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify alignment.
	 */
	public static final String ALIGNMENT_SPECIFIER = "  " ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify a list item.
	 */
	public static final String LIST_ITEM = "  " ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify a bullet list item.
	 */
	public static final String BULLET_LIST_ITEM = "*" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify a numbered list item.
	 */
	public static final String NUMBERED_LIST_ITEM = "-" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify the start of an hypertext link.
	 */
	public static final String HYPERTEXT_LINK_START = "[[" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify the separator between link target and link text.
	 */
	public static final String HYPERTEXT_LINK_SEPARATOR = "|" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify the end of an hypertext link.
	 */
	public static final String HYPERTEXT_LINK_END = "]]" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify the address mail.
	 */
	public static final String MAIL_LINK = "mail_dest" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify a line break.
	 */
	public static final String LINE_BREAK = "\\\\ " ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify a horizontal separator.
	 */
	public static final String HORIZONTAL_SEPARATOR = "----" ;//$NON-NLS-1$

	/**
	 * {@code DokuWiki} code used to specify text formatting.
	 */
	public static final String[] SPECIAL_STRINGS = new String[]{
		/*No wiki:    */ "(%%)",			//$NON-NLS-1$
		/*Titre:      */ "([=]{2,})",		//$NON-NLS-1$
		/*Bold:       */ "([*]{2,})", 		//$NON-NLS-1$
		/*Italic:     */ "[^:]([/]{2,})",	//$NON-NLS-1$
		/*Underlined: */ "([_]{2,})",		//$NON-NLS-1$
		/*Monospaced: */ "('')"	,			//$NON-NLS-1$
		/*Code: 	  */ "([ ]{2,})"		//$NON-NLS-1$
	} ;

	/**
	 * {@code DokuWiki} code used to specify a no-wiki text.
	 */
	public static final String NO_WIKI = "no_wiki" ;//$NON-NLS-1$

}// interface DokuWikiConstants